package com.tutu.mp.entity;

import com.baomidou.mybatisplus.annotation.*;

import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDateTime;


/**
 * @Program: SpringBoot
 * @Description:
 * @Author: JK.TuTu
 * @ @Version: 1.0
 * @Create: 2022-11-29 09:08
 **/
@Data
@Accessors(chain = true)
@TableName("t_user") //当实体类名称与数据库表名不一致时，可以使用该注解指定
public class User implements Serializable {
    /*
    主键策略:
    Auto:自动增长策略，需要配合数据库进行使用，mysql可以使用，oracle不行
    ASSIGN_ID:默认使用该策略，改策略会使用雪花算法进行生成ID,主键类型需要为Long或String
    ASSIGN_UUID:使用UUID生成主键，主键类型需要为String
    INPUT:自定义输入策略,如果不想使用数据库的自增主键，也可以使用INPUT进行自己传递主键即可
     */
    @TableId
    private Long id;

    @TableField("username") //指定数据库表中字段的名称
    private String name;

    private Integer age;

    private String email;

    @TableField(fill = FieldFill.INSERT)  //插入数据时 自动填充该字段
    private LocalDateTime createTime;

    @TableField(fill=FieldFill.INSERT_UPDATE)  //插入数据或修改数据时 自动填充该字段
    private LocalDateTime updateTime;

    //@TableLogic
    @TableField(fill = FieldFill.INSERT)  //插入数据时 自动填充该字段
    private  int deleted;


}
